package com.info.zhiduoduo.core.service;

import com.info.zhiduoduo.repository.dto.company.CompanyAccountBriefDto;
import com.info.zhiduoduo.repository.dto.company.CompanyDetailDto;
import com.info.zhiduoduo.repository.dto.company.CompanyPayBalanceDto;
import com.info.zhiduoduo.repository.entity.company.CompanyParty;
import com.info.zhiduoduo.repository.entity.company.CompanyPayment;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface CoreCompanyService {
//
//	/**
//	 * 实时调用开联通接口,处理本地的账户信息和开联通的账户信息，合并成可用余额
//	 */
//	CompanyAccountBriefDto getMerchantAccountInfo(int compid);

    void checkCompanyPayPassword(int compid, String inputPwd);

    /**
     * 查询企业详情
     * @param compid
     * @return
     */
    CompanyDetailDto getCompanyInfo(int compid);
    
    /**
     * 企业支付前校验- 业务
     * @param compid
     */
    void checkCompanyPayBeforeZdd(int compid);

    /**
     * 企业支付前校验-智众包/智零工业务
     * @param compid
     */
    void checkCompanyPayBeforeCroOrOdd(int compid, int workType);

    /**
     * 查询企业默认支付方式（ 业务）
     */
    CompanyParty getCompanyDefaultPartyZdd(Integer compid);

    /**
     * 查询企业默认支付方式（智众包业务）
     */
    CompanyParty getCompanyDefaultPartyCro(Integer compid);

    /**
     * 查询企业默认支付方式（智零工业务）
     */
    CompanyParty getCompanyDefaultPartyOdd(Integer compid);

    /**
     * 根据智零工/智众包项目类型，查询企业默认支付方式（智众包/ 业务可用）
     * @param compid
     * @param workType 业务
     * @return
     */
    CompanyParty getCompanyDefaultPartyMul(Integer compid, int workType);

    /**
     * 查询企业默认支付方式（创客团业务）
     */
    CompanyParty getCompanyDefaultPartyGroup(Integer compid);

    /**
     * 查询企业业务- 下默认支付方式的余额
     */
    CompanyPayBalanceDto getCompanyDefaultBalanceZdd(Integer compid);

    /**
     * 查询企业业务-智众包下默认支付方式的余额
     */
    CompanyPayBalanceDto getCompanyDefaultBalanceCro(Integer compid);

    /**
     * 查询企业业务-智零工下默认支付方式的余额
     */
    CompanyPayBalanceDto getCompanyDefaultBalanceOdd(Integer compid);

    /**
     * 查询企业业务-创客团下默认支付方式的余额
     */
    CompanyPayBalanceDto getCompanyDefaultBalanceGroup(Integer compid);

    /**
     * 查询企业每项业务（如 zdd/智众包cro）下默认支付方式的余额 返回List
     * @param compid
     * @return
     */
    List<CompanyPayBalanceDto> getCompanyDefaultBalanceList(Integer compid);

    /**
     *  查询企业每项业务（如 zdd/智众包cro）下默认支付方式的余额 返回Map
     * @param compid
     * @return
     */
    Map<String,List<CompanyPayBalanceDto>> getCompanyDefaultBalanceMap(Integer compid);

    /**
     * 查询企业每项业务（如 zdd/智众包cro）下所有支付方式的余额
     */
    List<CompanyPayBalanceDto> getCompanyAllBalanceList(Integer compid);

    /**
     * 查询企业所有支付方式的总余额
     */
    BigDecimal getCompanyTotalBalance(Integer compid);

    /**
     * 查询企业某个支付方式下的余额
     * @return
     */
    CompanyPayment getCompanyPayment(Integer compid,Integer payId);
}
